home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-11-11 | 10.8 KB | 640 lines | [TEXT/MPS ] |
- ;
- ; File: MIDI.a
- ;
- ; Copyright: © 1984-1994 by Apple Computer, Inc.
- ; All rights reserved.
- ;
- ; Version: Universal Interfaces 2.0a3 ETO #16, MPW prerelease. Friday, November 11, 1994.
- ;
- ; Bugs?: If you find a problem with this file, send the file and version
- ; information (from above) and the problem description to:
- ;
- ; Internet: apple.bugs@applelink.apple.com
- ; AppleLink: APPLE.BUGS
- ;
- ;
-
- IF &TYPE('__MIDI__') = 'UNDEFINED' THEN
- __MIDI__ SET 1
-
-
- IF &TYPE('__ERRORS__') = 'UNDEFINED' THEN
- include 'Errors.a'
- ENDIF
- ; include 'ConditionalMacros.a' ;
-
- IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
- include 'Types.a'
- ENDIF
-
- IF &TYPE('__MIXEDMODE__') = 'UNDEFINED' THEN
- include 'MixedMode.a'
- ENDIF
-
- midiToolNum EQU 4 ;tool number of MIDI Manager for SndDispVersion call
- midiMaxNameLen EQU 31 ;maximum number of characters in port and client names
- ; Time formats
- midiFormatMSec EQU 0 ;milliseconds
- midiFormatBeats EQU 1 ;beats
- midiFormat24fpsBit EQU 2 ;24 frames/sec.
- midiFormat25fpsBit EQU 3 ;25 frames/sec.
- midiFormat30fpsDBit EQU 4 ;30 frames/sec. drop-frame
- midiFormat30fpsBit EQU 5 ;30 frames/sec.
- midiFormat24fpsQF EQU 6 ;24 frames/sec. longInt format
- midiFormat25fpsQF EQU 7 ;25 frames/sec. longInt format
- midiFormat30fpsDQF EQU 8 ;30 frames/sec. drop-frame longInt format
- midiFormat30fpsQF EQU 9 ;30 frames/sec. longInt format
- midiInternalSync EQU 0 ;internal sync
- midiExternalSync EQU 1 ;external sync
- ; Port types
- midiPortTypeTime EQU 0 ;time port
- midiPortTypeInput EQU 1 ;input port
- midiPortTypeOutput EQU 2 ;output port
- midiPortTypeTimeInv EQU 3 ;invisible time port
- ; OffsetTimes
- midiGetEverything EQU $7FFFFFFF ;get all packets, regardless of time stamps
- midiGetNothing EQU $80000000 ;get no packets, regardless of time stamps
- midiGetCurrent EQU $00000000 ;get current packets only
-
- ; MIDI data and messages are passed in MIDIPacket records (see below).
- ; The first byte of every MIDIPacket contains a set of flags
- ;
- ; bits 0-1 00 = new MIDIPacket, not continued
- ; 01 = begining of continued MIDIPacket
- ; 10 = end of continued MIDIPacket
- ; 11 = continuation
- ; bits 2-3 reserved
- ;
- ; bits 4-6 000 = packet contains MIDI data
- ;
- ; 001 = packet contains MIDI Manager message
- ;
- ; bit 7 0 = MIDIPacket has valid stamp
- ; 1 = stamp with current clock
- ;
- midiContMask EQU $03
- midiNoCont EQU $00
- midiStartCont EQU $01
- midiMidCont EQU $03
- midiEndCont EQU $02
- midiTypeMask EQU $70
- midiMsgType EQU $00
- midiMgrType EQU $10
- midiTimeStampMask EQU $80
- midiTimeStampCurrent EQU $80
- midiTimeStampValid EQU $00
- ; MIDIPacket command words (the first word in the data field for midiMgrType messages)
- midiOverflowErr EQU $0001
- midiSCCErr EQU $0002
- midiPacketErr EQU $0003
- ;all command words less than this value are error indicators
- midiMaxErr EQU $00FF
- ; Valid results to be returned by readHooks
- midiKeepPacket EQU 0
- midiMorePacket EQU 1
- midiNoMorePacket EQU 2
- ; Driver calls
- midiOpenDriver EQU 1
- midiCloseDriver EQU 2
-
- MIDIPacket RECORD 0
- flags ds.b 1
- len ds.b 1
- tStamp ds.l 1
- data ds.b 249
- sizeof EQU 256
- ENDR
-
- MIDIClkInfo RECORD 0
- syncType ds.w 1 ;synchronization external/internal
- curTime ds.l 1 ;current value of port's clock
- format ds.w 1 ;time code format
- sizeof EQU 8
- ENDR
-
- MIDIIDRec RECORD 0
- clientID ds.l 1
- portID ds.l 1
- sizeof EQU 8
- ENDR
-
- MIDIPortInfo RECORD 0
- portType ds.w 1 ;type of port
- timeBase ds MIDIIDRec ;MIDIIDRec for time base
- numConnects ds.w 1 ;number of connections
- cList ds MIDIIDRec ;ARRAY [1..numConnects] of MIDIIDRec
- sizeof EQU 20
- ENDR
-
- MIDIPortParams RECORD 0
- portID ds.l 1 ;ID of port, unique within client
- portType ds.w 1 ;Type of port - input, output, time, etc.
- timeBase ds.w 1 ;refnum of time base, 0 if none
- offsetTime ds.l 1 ;offset for current time stamps
- readHook ds.l 1 ;routine to call when input data is valid
- refCon ds.l 1 ;refcon for port (for client use)
- initClock ds MIDIClkInfo ;initial settings for a time base
- name ds.l 64 ;name of the port, This is a real live string, not a ptr.
- sizeof EQU 284
- ENDR
-
- MIDIIDList RECORD 0
- numIDs ds.w 1
- list ds.l 1
- sizeof EQU 6
- ENDR
-
- IF GENERATING68K THEN
- Macro
- _MIDIVersion
- dc.w $203C
- dc.w $0000
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIVersion
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDISignIn
- dc.w $203C
- dc.w $0004
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDISignIn
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDISignOut
- dc.w $203C
- dc.w $0008
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDISignOut
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIGetClients
- dc.w $203C
- dc.w $000C
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIGetClients
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIGetClientName
- dc.w $203C
- dc.w $0010
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIGetClientName
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDISetClientName
- dc.w $203C
- dc.w $0014
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDISetClientName
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIGetPorts
- dc.w $203C
- dc.w $0018
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIGetPorts
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIAddPort
- dc.w $203C
- dc.w $001C
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIAddPort
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIGetPortInfo
- dc.w $203C
- dc.w $0020
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIGetPortInfo
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIConnectData
- dc.w $203C
- dc.w $0024
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIConnectData
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIUnConnectData
- dc.w $203C
- dc.w $0028
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIUnConnectData
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIConnectTime
- dc.w $203C
- dc.w $002C
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIConnectTime
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIUnConnectTime
- dc.w $203C
- dc.w $0030
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIUnConnectTime
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIFlush
- dc.w $203C
- dc.w $0034
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIFlush
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIGetReadHook
- dc.w $203C
- dc.w $0038
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIGetReadHook
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDISetReadHook
- dc.w $203C
- dc.w $003C
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDISetReadHook
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIGetPortName
- dc.w $203C
- dc.w $0040
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIGetPortName
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDISetPortName
- dc.w $203C
- dc.w $0044
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDISetPortName
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIWakeUp
- dc.w $203C
- dc.w $0048
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIWakeUp
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIRemovePort
- dc.w $203C
- dc.w $004C
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIRemovePort
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIGetSync
- dc.w $203C
- dc.w $0050
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIGetSync
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDISetSync
- dc.w $203C
- dc.w $0054
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDISetSync
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIGetCurTime
- dc.w $203C
- dc.w $0058
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIGetCurTime
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDISetCurTime
- dc.w $203C
- dc.w $005C
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDISetCurTime
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIStartTime
- dc.w $203C
- dc.w $0060
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIStartTime
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIStopTime
- dc.w $203C
- dc.w $0064
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIStopTime
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIPoll
- dc.w $203C
- dc.w $0068
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIPoll
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIWritePacket
- dc.w $203C
- dc.w $006C
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIWritePacket
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIWorldChanged
- dc.w $203C
- dc.w $0070
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIWorldChanged
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIGetOffsetTime
- dc.w $203C
- dc.w $0074
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIGetOffsetTime
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDISetOffsetTime
- dc.w $203C
- dc.w $0078
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDISetOffsetTime
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIConvertTime
- dc.w $203C
- dc.w $007C
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIConvertTime
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIGetRefCon
- dc.w $203C
- dc.w $0080
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIGetRefCon
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDISetRefCon
- dc.w $203C
- dc.w $0084
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDISetRefCon
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIGetClRefCon
- dc.w $203C
- dc.w $0088
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIGetClRefCon
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDISetClRefCon
- dc.w $203C
- dc.w $008C
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDISetClRefCon
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIGetTCFormat
- dc.w $203C
- dc.w $0090
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIGetTCFormat
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDISetTCFormat
- dc.w $203C
- dc.w $0094
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDISetTCFormat
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDISetRunRate
- dc.w $203C
- dc.w $0098
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDISetRunRate
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _MIDIGetClientIcon
- dc.w $203C
- dc.w $009C
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT MIDIGetClientIcon
- ENDIF
-
- IF GENERATING68K THEN
- Macro
- _SndDispVersion
- dc.w $203C
- dc.w $0000
- dc.w $0000
- dc.w $A800
- EndM
- ELSE
- IMPORT SndDispVersion
- ENDIF
-
- ENDIF ; __MIDI__
-